﻿//注：递归程序会不断的展开，在展开的过程中，在递归的过程中会有重复计
//算，⽽且递归层次越深，冗余计算就会越多。
#include <stdio.h>
int count = 0;
//int Fib(int n)
//{
//	if (n == 3)
//		count++;//统计第3个斐波那契数被计算的次数 
//	if (n <= 2)
//		return 1;
//	else
//		return Fib(n - 1) + Fib(n - 2);
//}

int Fib(int n)
{
	int a = 1;
	int b = 1;
	int c = 1;
	while (n > 2)
	{
		c = a + b;
		a = b;
		b = c;
		n--;
	}
	return c;
}//迭代



int main()
{
	int n = 0;
	scanf("%d", &n);

	int ret = Fib(n);
	printf("%d\n", ret);
	printf("\ncount = %d\n", count);
	return 0;
}//重复计算
